The startup of a software application on a computer typically requires the computer to load the application into memory, retrieve data from local and/or remote sources, and store the data at designated locations in the memory. A user is often unable to use the application until the application is fully initialized and ready to process user instructions. Very often, this initialization process may take a long period of time, during which time the user cannot do anything but wait. This situation could have a significant impact on the user experience where the computer is a portable device, such as a mobile phone, that has limited resources due to one or more of restricted network bandwidth, memory space, and processor throughput.